package com.example.wechat.pojo.pay;

import com.example.wechat.enums.PayStates;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Order {
    /**
     *  订单描述，支付时的描述
     */
    private String description;
    /**
     * 支付的订单号，必须分布式全局唯一
     */
    private String orderNumber;
    /**
     * 支付金额，必须为正整数，不能带小数点，所以使用int类型
     */
    private int cost;
    /**
     * 产品id
     */
    private String productId;
    /**
     * 订单状态：
     * NULL:代表没有该订单
     *      * SUCCESS：支付成功
     *      * REFUND：转入退款
     *      * NOTPAY：未支付
     *      * CLOSED：已关闭
     *      * REVOKED：已撤销（仅付款码支付会返回）
     *      * USERPAYING：用户支付中（仅付款码支付会返回）
     *      * PAYERROR：支付失败（仅付款码支付会返回）
     */
    private PayStates orderState=PayStates.NULL;
    //该订单的二维码链接
    private String codeUrl=null;
    private Date date;
    public Order(String description,String orderNumber,int cost,String productId){
        this.description=description;
        this.orderNumber=orderNumber;
        this.cost=cost;
        this.productId=productId;
    }

    @Override
    public String toString() {
        return "Order{" +
                "description='" + description + '\'' +
                ", orderNumber='" + orderNumber + '\'' +
                ", cost=" + cost +
                ", productId='" + productId + '\'' +
                ", orderState=" + orderState +
                ", codeUrl='" + codeUrl + '\'' +
                ", date=" + date +
                '}';
    }
}
